* nsterm.m (keyDown:): Check for normal key even if NSNumericPadKeyMask
authorAnders Lindgern <andlind@gmail.com>
Sun, 16 Feb 2014 09:51:41 +0000 (10:51 +0100)
committerJan Djärv <jan.h.d@swipnet.se>
Sun, 16 Feb 2014 09:51:41 +0000 (10:51 +0100)
is set.

src/ChangeLog
src/nsterm.m

index 6c32da65ff6a6203e414956607a168b40994ab4b..7732b9d5fc77bcb5f77a75889dc48a0121303638 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-16  Anders Lindgern <andlind@gmail.com>
+
+       * nsterm.m (keyDown:): Check for normal key even if NSNumericPadKeyMask
+       is set (Bug#16505).
+
 2014-02-16  Daniel Colascione  <dancol@dancol.org>
 
        * dbusbind.c (xd_lisp_dbus_to_dbus): New function.
index ff20ea35ebff582137a277dbb84dc706417335ae..b8dd8bc8ad272f9a12ed5fc8de06388161f185e4 100644 (file)
@@ -5119,9 +5119,17 @@ not_in_argv (NSString *arg)
       /* (Carbon way: [theEvent keyCode]) */
 
       /* is it a "function key"? */
-      fnKeysym = (code < 0x00ff && (flags&NSNumericPadKeyMask))
-       ? ns_convert_key ([theEvent keyCode] | NSNumericPadKeyMask)
-       : ns_convert_key (code);
+      /* Note: Sometimes a plain key will have the NSNumericPadKeyMask
+         flag set (this is probably a bug in the OS).
+      */
+      if (code < 0x00ff && (flags&NSNumericPadKeyMask))
+        {
+          fnKeysym = ns_convert_key ([theEvent keyCode] | NSNumericPadKeyMask);
+        }
+      if (fnKeysym == 0)
+        {
+          fnKeysym = ns_convert_key (code);
+        }
 
       if (fnKeysym)
         {